package control.tiemchung;

import java.util.Date;
import java.util.List;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import model.dao.hosotiemchung.HoSoTiemChungDAO;
import model.entity.HoSoTiemChung;
import model.entity.KhachHang;
import model.entity.PhieuTiemChung;
import model.entity.VatNuoi;

public class TCMainPanel_ctrl {
   /**
    * 
    * load danh sách các HoSoTiemChung lên table 
    * @param list
    * @param table 
    */
        public static void loadListLenTable(List<HoSoTiemChung> list,JTable table){
        Vector<String> tableHeader = new Vector<String>();
        tableHeader.add("Mã hồ sơ");
        tableHeader.add("Mã vật nuôi");
        tableHeader.add("Tên vật nuôi");
        tableHeader.add("Bệnh");
        tableHeader.add("Ngày bắt đầu");
        tableHeader.add("Ngày kết thúc");
        tableHeader.add("Trạng thái");
        tableHeader.add("Ghi Chú");
        
        // phần dữ liệu của bảng
        Vector data = new Vector();
        for (HoSoTiemChung hoSoTiemChung: list) {
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(hoSoTiemChung.getHstcMa());
            if(hoSoTiemChung.getVatNuoi() != null){
            oneRow.add(hoSoTiemChung.getVatNuoi().getVnMa());
            oneRow.add(hoSoTiemChung.getVatNuoi().getVnTen());
            }else{
                oneRow.add("");
                oneRow.add("");
            }
            oneRow.add(hoSoTiemChung.getBenh());
            oneRow.add(hoSoTiemChung.getHstcNgayBd());
            oneRow.add(hoSoTiemChung.getHstcNgayKt());
            oneRow.add(hoSoTiemChung.getHstcTrangThai());
            oneRow.add(hoSoTiemChung.getHstcGhiChu());
            data.add(oneRow);
        }
        
        // set model cho bảng
        table.setModel(new DefaultTableModel(data, tableHeader));
        }
        public static void loadListPTCLenTable(List<PhieuTiemChung> list,JTable table){
        Vector<String> tableHeader = new Vector<String>();
        tableHeader.add("Mã phiếu");
        tableHeader.add("Vaccin");
        tableHeader.add("Ngày tiêm");
        tableHeader.add("Ngày tiêm kế tiếp");
        tableHeader.add("Liều tiêm");
        tableHeader.add("Tổng tiền");
        // phần dữ liệu của bảng
        Vector data = new Vector();
        for (Object o: list) {
            PhieuTiemChung phieuTiemChung = (PhieuTiemChung) o;
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(phieuTiemChung.getPtcMa());
            
            oneRow.add(phieuTiemChung.getVaccine().getVaccineTen());
            oneRow.add(phieuTiemChung.getHstcLieuTiem());
            oneRow.add(phieuTiemChung.getHstcNgayTiem());
            oneRow.add(phieuTiemChung.getHstcNgayTiemKeTiep());
            oneRow.add(phieuTiemChung.getVaccine().getGia().getGiaBan()+ phieuTiemChung.getVaccine().getGia().getGiaDonViTinh());
            data.add(oneRow);
        }
        
        // set model cho bảng
        table.setModel(new DefaultTableModel(data, tableHeader));
        }
        public static void loadAllHoSoTiemChung(JTable table){
            List<HoSoTiemChung> list = HoSoTiemChungDAO.danhSachHoSoTiemChung();
            loadListLenTable(list, table);
        }
    public static boolean xoaHoSoTiemChung(int maHoSo){
        return HoSoTiemChungDAO.xoaHoSoTiemChung(maHoSo);
    }
    public static HoSoTiemChung chiTietHoSo(JTable table){
        int row = table.getSelectedRow();
        
        int maHoSo = (Integer) table.getValueAt(row, 0);
        
        String tenVatNuoi = (String) table.getValueAt(row, 2);
        String benh = (String) table.getValueAt(row, 3);
        Date ngayBatDau = (Date) table.getValueAt(row, 4);
        Date ngayKetThuc = (Date) table.getValueAt(row, 5);
        String trangThai = (String) table.getValueAt(row, 6);
        String ghiChu = (String) table.getValueAt(row, 7);
        
        VatNuoi vatNuoi = new VatNuoi();
        HoSoTiemChung hoSoTiemChung = new HoSoTiemChung();
        int maVatNuoi = -1;
        if(!table.getValueAt(row, 1).equals("")){
             maVatNuoi = (Integer) table.getValueAt(row, 1); 
        }
        vatNuoi.setVnTen(tenVatNuoi);
        hoSoTiemChung.setHstcMa(maHoSo);
        hoSoTiemChung.setBenh(benh);
        vatNuoi.setVnMa(maVatNuoi);
        hoSoTiemChung.setVatNuoi(vatNuoi);
        hoSoTiemChung.setHstcNgayBd(ngayBatDau);
        hoSoTiemChung.setHstcNgayKt(ngayKetThuc);
        hoSoTiemChung.setHstcTrangThai(trangThai);
        hoSoTiemChung.setHstcGhiChu(ghiChu);
        return hoSoTiemChung;
    }
    public static boolean timHoSoTiemChungTheoMa(int maHoSoTiemChung, JTable table){
        List<HoSoTiemChung> list = HoSoTiemChungDAO.timTheoMaHoSo(maHoSoTiemChung);
        loadListLenTable(list, table);
        return true;
    }

    public static boolean timHoSoTiemChungTheoMaVatNuoi(int maVatNuoi, JTable table) {
        List<HoSoTiemChung> list = HoSoTiemChungDAO.timHoSoTheoMaVatNuoi(maVatNuoi);
        loadListLenTable(list, table);
        return true;
    }
    
}
